//删除操作，显示确认框的函数
function showConfirmModal(roleArray) {
    //弹出确认框
    $("#confimModal").modal("show");
    //清除旧数据
    $("#roleNameDiv").empty();

    window.roleIdArray = [];
    //遍历role对象数组
    for (var i = 0; i < roleArray.length; i++) {
        //取出role对象数组的每个roleName属性，输出到页面
        var role = roleArray[i];
        var roleName = role.name;
        $("#roleNameDiv").append(roleName+"<br/>");
        //取出roleId属性，加入全局变量的roleId数组
        var roleId = role.roleId;
        window.roleIdArray.push(roleId);
    }
}

//执行分页，生成页面效果
//调用这个函数会重新加载页面
function generatePage() {
//    获取分页数据
    var pageInfo = getPageInfoRemote();

//    填充表格
    fillTableBody(pageInfo);
}

//访问服务器端获取pageInfo数据
function getPageInfoRemote() {
    var ajaxResult = $.ajax({
        "url":"role/get/page/info.json",
        "type":"post",
        "data":{
            "pageNum":window.pageNum,
            "pageSize":window.pageSize,
            "keyword":window.keyword
        },
        "async":false,
        "dataType":"json"
    });
    console.log(ajaxResult);
    // 判断当前响应状态码是否为200
    var statusCode = ajaxResult.status;
    // 如果当前响应状态码不是200，说明发生了错误或其他意外情况，显示提示消息，让当前函数停止执行
    if(statusCode != 200) {
        layer.msg("失败！响应状态码="+statusCode+"说明信息="+ajaxResult.statusText);
        return null;
    }
    // 如果响应状态码是200，说明请求处理成功，获取pageInfo
    var resultEntity = ajaxResult.responseJSON;
    // 从resultEntity中获取result属性
    var result = resultEntity.result;
    // 判断result是否成功
    if(result == "FAILED") {
        layer.msg(resultEntity.message);
        return null;
    }
    // 确认result为成功后获取pageInfo
    var pageInfo = resultEntity.data;
    // 返回pageInfo
    return pageInfo;
}

//填充表格，
function fillTableBody(pageInfo) {

    //清除页面上以前的旧数据
    $("#rolePageBody").empty();
    //清空导航条
    $("#Pagination").empty();

    if (pageInfo == null || pageInfo == undefined || pageInfo.list == null || pageInfo.list.length == 0){
        $("#rolePageBody").append("<tr><td colspan='4'>没有查询到数据</td></tr>");
        return ;
    }
    for (var i = 0; i < pageInfo.list.length; i++) {
        var role = pageInfo.list[i];
        var roleId = role.id;
        var roleName = role.name;
        var numberTd = "<td>"+(i+1)+"</td>";
        var checkboxTd = "<td><input id='"+roleId+"' class='itemBox' type='checkbox'></td>";
        var roleNameTd = "<td>"+roleName+"</td>";
        var checkBtn = "<button id='"+roleId+"' type='button' class='btn btn-success btn-xs checkBtn'><i class=' glyphicon glyphicon-check'></i></button>";
        //使用id属性把roleId的值传递到按钮的单击响应函数中
        var pencilBtn = "<button id='"+roleId+"' type='button' class='btn btn-primary btn-xs pencilBtn'><i class=' glyphicon glyphicon-pencil'></i></button>";
        var removeBtn = "<button id='"+roleId+"' type='button' class='btn btn-danger btn-xs removeBtn'><i class=' glyphicon glyphicon-remove'></i></button>";
        var buttonTd = "<td>"+ checkBtn + " " + pencilBtn + " " + removeBtn +"</td>";
        //前端拼串操作
        var tr = "<tr>"+ numberTd + checkboxTd + roleNameTd + buttonTd +"</tr>";
        $("#rolePageBody").append(tr);
    }
    generateNavigator(pageInfo);
}

//生成分页页码导航条
function generateNavigator(pageInfo) {
//    先获取总记录数
    var totalRecord = pageInfo.total;

//    声明其他属性
    var properties = {
        "num_edge_entries":3,// 边缘页数
        "num_display_entries":5,// 主体页数
        "callback":paginationCallBack,// 指定用户点击翻页按钮，跳转页面的回调函数
        "items_per_page":pageInfo.pageSize,// 每页显示数据的数量
        "current_page":pageInfo.pageNum - 1,// 默认显示的页码
        "prev_text":"上一页", // 上一页按钮显示的文本
        "next_text":"下一页" // 下一页按钮显示的文本
    };

    //调用pagination函数
    $("#Pagination").pagination(totalRecord,properties);

}

//生成翻页回调函数
function paginationCallBack(pageIndex,jQuery) {
    //修改window.pageNum
    window.pageNum = pageIndex + 1;
    //调用分页函数
    generatePage();
    //取消页码默认超链接行为
    return false;

}